home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr25
/
os2dperf.zip
/
DPERF.DOC
next >
Wrap
Text File
|
1993-06-01
|
28KB
|
712 lines
Disk Performance Test
Version 1.0
August 20, 1991
IDK Computer Systems, Inc.
129 Cambridge Street
Syracuse, New York 13210
(315) 475-5598
1.0 Objectives
The objective of this project is to invent a method,
consisting of a computer program and operating instructions, for
testing the performance of disk subsystems operating in an OS/2
protect mode environment. The computer program, distributed with
this document, is in a file named "DPERF.EXE". The latter
sections of this document constitute the operating instructions.
2.0 Requirements
The computer program for this test executes on all
80286, 80386 and 80486 based microcomputer systems that are
capable of supporting the Microsoft OS/2 operating system. The
performance figures yielded by running the program are normalized
so that they are not affected by the type of central processing
unit (CPU) or the fundamental clock rate (MHz) of the CPU. The
performance figures are be affected by the revision level of the
OS/2 operating system being used, the file system in use, the
disk cache system, sector interleave, and the hardware and device
driver software provided by the disk subsystem vendor.
Concurrent programming is used to test performance of interrupt
handling in the disk subsystem device driver. Separate
performance figures are shown for read and write tests to measure
the performance of the disk cache system. The computer program
is able to execute on monochrome or color systems, and with MFM,
RLL, ESDI, IDE or SCSI format drives. The disk subsystem test is
able to test local area network simulated disk drives.
3.0 Test Method
The computer program for this test consists of two
principal components: A CPU Performance Test and a Disk
Performance Test. The CPU Performance Test was developed so that
the results of the Disk Performance Test could be normalized to
eliminate the effects of differing speed CPU hardware.
3.1 CPU Performance Test
During the development phase of this test, compensation
factors were measured that allow the program to display
performace figures which are independent of the CPU type and
fundamental clock frequency. A CPU Performance Test was written
to consist primarily of sixteen bit data moves from memory to
sixteen bit data moves from register to memory, data compare
instructions, conditional branches, and stack operations.
Thirty-two bit arithmetic, multiplies, divides, thirty-two bit
address calculations and string manipulations were deliberately
omitted from the instruction mix because they are not executed
frequently enough in the operating system code to affect test
results within the 0.005% error margin. The CPU Performance Test
was designed to mimic the code that is executed in the operating
system.
The CPU Performance Test consists of two nested loops.
The inner loop contains the move, compare, branch and stack
instructions, and executes for a little under 20 microseconds on
an IBM Personnal Computer AT running at 8 MHz. The inner loop is
executed fifty times to give a nominal execution time of one
millisecond. The outer loop executes ten thousand times to give
the entire test a duration of ten seconds. The OS/2 Global
Information Segment, whose address can be obtained by a call to
the operating system, records the elapsed time since the system
was turned on or restarted, in milliseconds, continuously
updated. The test program records this time at the beginning of
the two nested loops, then again after the loops finish. By
successive approximation, the number of iterations for the outer
loop was adjusted to the center of the spread which would yield
observed elapsed time of 10,000 milliseconds on the IBM Personal
Computer AT running at 8 MHz. The value of ten seconds was
chosen for the test so that four significant figures of accuracy
could be maintained with the one millisecond clock resolution of
the operating system.
3.2 Disk Performance Test.
In order to measure the effects of various forms of
caching, directory structures and concurrent I/O processing,
a test was developed which included file writes and file reads of
various sizes in a multi-thread environment. Five threads were
created in the program, each of which writes a file, then reads
it back. Elapsed time in milliseconds is reported by each thread
at the completion of writing the file, and at completion of
reading the file back. The record sizes for the files and the
number of records in each file are shown in Table I.
Table I - Record and FIle Sizes
File Name Record Size Number of Records
-------------------------------------------------
DPERF001.TMP 1 byte 3,000
DPERF002.TMP 10 bytes 2,000
DPERF003.TMP 100 bytes 1,000
DPERF004.TMP 1,000 bytes 300
DPERF005.TMP 10,000 bytes 100
The file sizes were chosen to correspond to record sizes
most typically written by application programs. The number of
records for each file were chosen so that the complete writing of
each file would take approximately the same amount of time.
To compute the normalization that eliminates the effects
of varying CPU performance, the CPU Performace Test (detailed in
the previous section), and the concurrent file write/read test
were executed on several different CPU configurations. In each
case, the disk drive, the disk controller, and the operating
system were held constant. The disk drive used for development
was a Seagate model ST412, which is a type 1 drive on the IBM
Personal Computer AT. The disk controller used for development
was a Western Digital model WD1003-WA2, which is equivalent to
the controller supplied by IBM with the Personal Computer AT.
The operating system used for development was OS/2 version 1.21.
A floppy disk containing the operating system was prepared and
set up to have swapping disabled, caching disabled and
protect-only. The drive was formatted for the FAT (File
Allocation Table) directory structure, having a sector interleave
of 3. Table II shows the recorded total execution times for the
various CPU configurations used during test development.
Table II - Execution Time vs. CPU Type (sheet 1 of 2)
System CPU Test (ms) Disk Test (ms)
--------------------------------------------------------
IBM PC/AT - 8 MHz 10000 139593
10000 146656
10000 137531
10000 140969
10000 138657
Generic 386SX - 4313 128781
16 MHz 4312 135125
4313 138250
4312 128281
4313 125344
Generic 386SX - 8813 142844
8 MHz 8812 145125
8813 141437
8812 140906
8813 134687
Novacor NEAT 286 - 5875 134218
12 MHz 5875 136125
5875 128688
5875 134781
5875 135844
Novacor NEAT 286 - 3437 129718
20 MHz 3438 123969
3437 128656
3438 132469
3437 128813
King of Neat 286 - 4343 132968
16 MHz 4344 128375
4343 128719
4344 130656
4343 135875
King of Neat 286 - 3469 124875
20 MHz 3469 132250
3469 123750
3469 127500
3469 124156
Table II - Execution Time vs. CPU Type (sheet 2 of 2)
System CPU Test (ms) Disk Test (ms)
--------------------------------------------------------
King of Neat 286 - 8843 141406
8 MHz 8844 135531
8843 138687
8844 144219
8843 142781
Generic NEAT 286 - 2875 124062
25 MHz 2875 122782
2875 117968
2875 126343
2875 126831
Generic NEAT 286 - 9094 143437
8 MHz 9094 141656
9094 143219
9094 144312
9094 136844
AMD 386, OPTI Chipset - 1188 117343
40 MHz 1188 116157
1188 121031
1188 114750
1188 118281
AMD 386, OPTI Chipset - 3594 138781
10 MHz 3594 128250
3594 135843
3594 137125
3594 125656
The total execution times shown in Table II are measured from the
point just prior to creating the first sub-thread in the test
program to the point at which the last of the five threads had
completed reading and deleting its test file. Total execution of
each thread includes opening its file for writing, writing the
file, closing the file, re-opening the file for reading, reading
the file, closing the file again and deleting the file.
Observation of the test results during development
showed that, though the CPU Performance Test reported a very
constant figure, the execution time of the Disk Performance Test
results were somewhat stochastic. A BASIC program was written to
use the least squares method to average the relationship between
CPU performance and disk subsystem performance. Because of the
fact that the total execution times consist of two independent
parts, the CPU contribution and the disk contribution, a linear
relationship exists between the CPU performance and the total
disk test time. If the execution time of the CPU Performance
Test is plotted along the abscissa of a graph and the total disk
test time is plotted along the ordinate, then the X-intercept
would be the total disk time if there were zero CPU contribution.
The slope of this graph would be the ratio of time required to
execute the operating system execution over the CPU Performance
Test execution time. The slope of the graph was calculated as
2.464064; meaning that the operating system overhead for OS/2
version 1.21 for this test is about 25 seconds on an 8 MHz IBM
Personal Computer AT. The intercept of the graph was calculated
as 118,977.7; meaning that the disk operations would have taken
about 119 seconds had the CPU been infinitely fast. These, of
course, are average figures. Some of the observed total disk
test times are actually lower than 119 seconds because of the
random nature of asynchronous events in the operating system.
The BASIC program that was used to compute these figures is
included with this report in a file named "DPERF.BAS".
3.3 Normalization Algorithm
Given that we have a standard for disk subsystem
performance in the configuration of a Seagate ST412 drive with
a Western Digital WD1003-WA2 controller, being driven by OS/2
version 1.21 running from a floppy disk with swapping, caching
and DOS mode disabled, we can begin to compare other disk
subsystems to this. The standard was selected to be the slowest
configuration that it is reasonably likely that someone might
implement as of the date of this report. Thus we can compute a
performance figure stating that the performance of a new and
improved system is X number of times greater than the standard.
The performance figure is a ratio of new subsystem speed to the
standard.
During the development of this test, we measured the
ratio of execution time for the operating system overhead vs. a
known loop of common instructions. This ratio was computed to be
2.464064 as an average over sixty samples. Multiplying the
execution time, in milliseconds, for the CPU Performance Test for
any test configuration by this ratio will give the number of
milliseconds of operating system overhead for that test
configuration. Subtracting this number of milliseconds of
operating system overhead from the total disk test time yields
the raw disk time in milliseconds - which is the time that the
test would have taken to execute if the CPU contribution to the
test time were not present. This raw disk test time can then be
divided by the raw disk test time for the standard ST412
configuration to yield the reciprocal of the disk performance
improvment. What is actually displayed by the test program is
the standard time, 118,977.7 milliseconds, divided by the raw
disk test time for the new disk subsystem.
4.0 Results
Each time that the computer program for this test runs,
it records test results to a log file named "DPERF.LOG" on the
current drive. If this file does not exist, then the program
creates it, otherwise it appends new results to the old. Figure
1 shows an example of a typical log file from ten test runs using
two computers and three disk subsystems:
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/22/91 Time: 11:52:17 Operating System: OS/2 1.21
Test System: Generic NEAT 286 - 25 MHz Drive: C
Drive Type: Maxtor 7120AT
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: Run from floppy disk, no swap, no cache,
no DOS.
CPU Performance (relative to 8 MHz 80286): 3.30
Write Test
Rec Size Records msec
1 3,000 16562
10 2,000 10187
100 1,000 32250
1,000 300 51312
10,000 100 27843
Read Test
Rec Size Records msec
1 3,000 7125
10 2,000 4813
100 1,000 8937
1,000 300 2688
10,000 100 10188
Disk Subsystem Performance (relative to type 1): 2.530
--------------------------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/22/91 Time: 11:55:12 Operating System: OS/2 1.21
Test System: Generic NEAT 286 - 25 MHz Drive: C
Drive Type: Maxtor 7120AT
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: Run from floppy disk, no swap, no cache,
no DOS, FAT file system.
CPU Performance (relative to 8 MHz 80286): 3.33
Figure 1 - Disk Performance Test Log File (sheet 1 of 1)
Write Test
Rec Size Records msec
1 3,000 15531
10 2,000 14562
100 1,000 34031
1,000 300 51375
10,000 100 28750
Read Test
Rec Size Records msec
1 3,000 10937
10 2,000 10438
100 1,000 7594
1,000 300 2718
10,000 100 12062
Disk Subsystem Performance (relative to type 1): 2.522
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/22/91 Time: 11:57:24 Operating System: OS/2 1.21
Test System: Generic NEAT 286 - 25 MHz Drive: C
Drive Type: Maxtor 7120AT
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: Run from floppy disk, no swap, no cache,
no DOS, FAT file system.
CPU Performance (relative to 8 MHz 80286): 3.30
Write Test
Rec Size Records msec
1 3,000 18593
10 2,000 11562
100 1,000 32281
1,000 300 51218
10,000 100 25656
Figure 1 - Disk Performance Test Log File (sheet 2 of 7)
Read Test
Rec Size Records msec
1 3,000 7438
10 2,000 3906
100 1,000 8125
1,000 300 2719
10,000 100 11656
Disk Subsystem Performance (relative to type 1): 2.533
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/22/91 Time: 12:06:03 Operating System: OS/2 1.21
Test System: Generic NEAT 286 - 25 Mhz Drive: C
Drive Type: Maxtor 7120AT
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: Run from floppy disk, no swap, no cache,
no DOS, FAT file system.
CPU Performance (relative to 8 MHz 80286): 3.33
Write Test
Rec Size Records msec
1 3,000 13750
10 2,000 11625
100 1,000 29562
1,000 300 51312
10,000 100 34906
Read Test
Rec Size Records msec
1 3,000 10406
10 2,000 6562
100 1,000 5000
1,000 300 2625
10,000 100 10906
Disk Subsystem Performance (relative to type 1): 2.531
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Figure 1 - Disk Performance Test Log File (sheet 3 of 7)
Date: 8/22/91 Time: 12:10:57 Operating System: OS/2 1.21
Test System: Generic NEAT 286 - 25 MHz Drive: C
Drive Type: Maxtor 7120AT
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: Run from floppy disk, no swap, no cache,
no DOS, FAT file system.
CPU Performance (relative to 8 MHz 80286): 3.30
Write Test
Rec Size Records msec
1 3,000 16719
10 2,000 16063
100 1,000 31938
1,000 300 52750
10,000 100 29500
Read Test
Rec Size Records msec
1 3,000 8656
10 2,000 3718
100 1,000 11281
1,000 300 2750
10,000 100 11281
Disk Subsystem Performance (relative to type 1): 2.456
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/21/91 Time: 11:30:48 Operating System: OS/2 1.21
Test System: AMD 386, OPTI Chipset - 40 MHz Drive: C
Drive Type: Maxtor LT213A
Controller Type: IDE
Test Conducted by: P.Gleason
Remarks: HPFS 386 present, 2 Mbytes FAT system
cache, Lanman file server, swap on, no DOS, FAT
file system on this drive, lazy on.
CPU Performance (relative to 8 MHz 80286): 8.42
Figure 1 - Disk Performance Test Log File (sheet 4 of 7)
Write Test
Rec Size Records msec
1 3,000 5156
10 2,000 5250
100 1,000 24250
1,000 300 35812
10,000 100 17312
Read Test
Rec Size Records msec
1 3,000 2750
10 2,000 3531
100 1,000 9406
1,000 300 1250
10,000 100 12031
Disk Subsystem Performance (relative to type 1): 3.454
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/21/91 Time: 11:35:48 Operating System: OS/2 1.21
Test System: AMD 386, OPTI Chipset - 40 MHz Drive: C
Drive Type: Maxtor LT213A
Controller Type: IDE
Test Conducted by: P. Gleason
Remarks: HPFS 386 present, FAT file system on this
drive, 2048K FAT cache, swap on, no DOS, Lanman
file server, lazy on.
CPU Performance (relative to 8 MHz 80286): 8.42
Write Test
Rec Size Records msec
1 3,000 3125
10 2,000 7250
100 1,000 26688
1,000 300 35719
10,000 100 16500
Figure 1 - Disk Performance Test Log File (sheet 5 of 7)
Read Test
Rec Size Records msec
1 3,000 2625
10 2,000 3000
100 1,000 7250
1,000 300 1063
10,000 100 12063
Disk Subsystem Performance (relative to type 1): 3.479
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/21/91 Time: 11:39:21 Operating System: OS/2 1.21
Test System: AMD 386, OPTI Chipset - 40 MHz Drive: D
Drive Type: Fujitsu M2249SA
Controller Type: Always Technology IN-2000
Test Conducted by: P. Gleason
Remarks: HPFS 386, HPFS on this drive, swap, no
DOS, lazy cache.
CPU Performance (relative to 8 MHz 80286): 8.42
Write Test
Rec Size Records msec
1 3,000 1907
10 2,000 3407
100 1,000 2844
1,000 300 2625
10,000 100 4250
Read Test
Rec Size Records msec
1 3,000 2625
10 2,000 2406
100 1,000 2406
1,000 300 94
10,000 100 1469
Disk Subsystem Performance (relative to type 1): 36.835
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Figure 1 - Disk Performance Test Log File (sheet 6 of 7)
Date: 8/21/91 Time: 11:42:34 Operating System: OS/2 1.21
Test System: AMD 386, OPTI Chipset - 40 MHz Drive: D
Drive Type: Fujitsu M2249SA
Controller Type: Always Technology IN-2000
Test Conducted by: P. Gleason
Remarks: HPFS 386, HPFS on this drive, swap, no
DOS, Lanman file server, lazy cache.
CPU Performance (relative to 8 MHz 80286): 8.42
Write Test
Rec Size Records msec
1 3,000 2438
10 2,000 1282
100 1,000 2657
1,000 300 1938
10,000 100 219
Read Test
Rec Size Records msec
1 3,000 1937
10 2,000 1500
100 1,000 250
1,000 300 125
10,000 100 1406
Disk Subsystem Performance (relative to type 1): 66.468
-----------------------------------------------------------------
IDK Disk Subsystem Performance Test
(c) 1991 IDK Computer Systems, Inc.
Syracuse, New York 13210 - (315) 475-5598
Date: 8/21/91 Time: 11:44:33 Operating System: OS/2 1.21
Test System: AMD 386, OPTI Chipset - 40 MHz Drive: D
Drive Type: Fujitsu M2249SA
Controller Type: Always Technology IN-2000
Test Conducted by: P. Gleason
Remarks: HPFS 386, HPFS on this drive, swap, no
DOS, Lanman file server, lazy cache.
CPU Performance (relative to 8 MHz 80286): 8.42
Figure 1 - Disk Performance Test Log File (sheet 7 of 7)
Write Test
Rec Size Records msec
1 3,000 3032
10 2,000 1750
100 1,000 157
1,000 300 94
10,000 100 94
Read Test
Rec Size Records msec
1 3,000 2468
10 2,000 3032
100 1,000 218
1,000 300 125
10,000 100 1000
Disk Subsystem Performance (relative to type 1): 40.331